name: Cross-Version

on:
  push:
    branches:
      - main
      - 'releases/**'
  pull_request:
    branches:
      - '*'

env:
  DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}

jobs:
  openjdk:
    strategy:
      fail-fast: false
      matrix:
        jdk:
        - version: 22
        - version: 23
        - version: 24
        - version: 24
          release: leyden
    name: "OpenJDK ${{ matrix.jdk.version }} (${{ matrix.jdk.release || 'ea' }})"
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 1
      - name: Set up Test JDK
        uses: ./.github/actions/setup-test-jdk
      - name: "Set up JDK ${{ matrix.jdk.version }} (${{ matrix.jdk.release || 'ea' }})"
        uses: oracle-actions/setup-java@v1
        with:
          website: jdk.java.net
          release: ${{ matrix.jdk.release || matrix.jdk.version }}
          version: latest
      - name: 'Prepare JDK${{ matrix.jdk.version }} env var'
        shell: bash
        run: echo "JDK${{ matrix.jdk.version }}=$JAVA_HOME" >> $GITHUB_ENV
      - name: Build
        uses: ./.github/actions/run-gradle
        with:
          arguments: |
            -PjavaToolchain.version=${{ matrix.jdk.version }} \
            -Dscan.tag.JDK_${{ matrix.jdk.version }} \
            build
  openj9:
    strategy:
      fail-fast: false
      matrix:
        jdk: [ 21 ]
    name: "OpenJ9 ${{ matrix.jdk }}"
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 1
      - name: Set up Test JDK
        uses: ./.github/actions/setup-test-jdk
        with:
          distribution: semeru
      - name: 'Set up JDK ${{ matrix.jdk }}'
        uses: actions/setup-java@v4
        with:
          distribution: semeru
          java-version: ${{ matrix.jdk }}
          check-latest: true
      - name: 'Prepare JDK${{ matrix.jdk }} env var'
        shell: bash
        run: echo "JDK${{ matrix.jdk }}=$JAVA_HOME" >> $GITHUB_ENV
      - name: Build
        uses: ./.github/actions/run-gradle
        with:
          arguments: |
            -PjavaToolchain.version=${{ matrix.jdk }} \
            -PjavaToolchain.implementation=j9 \
            -Dscan.tag.JDK_${{ matrix.jdk }} \
            -Dscan.tag.OpenJ9 \
            build
